<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8"/>
        <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
        <meta http-equiv="X-UA-Compatible" content="ie=edge"/>
        <title>Document</title>
        <script>
            /* 
                生成13位条形码(对之前的知识综合练习)
                    Ean-13码规则：第十三位数字是前十二位数字经过计算得到的校验码。
                例如：690123456789
                第三位计算其校验码的过程为：
                @前十二位的奇数位和6+0+2+4+6+8=26
                @前十二位的偶数位和9+1+3+5+7+9=34
                @将奇数和与偶数和的三倍相加26+34*3=128
                @取结果的个位数：128的个位数为8
                @用10减去这个个位数10-8=2
                所以校验码为2（注：如果取结果的个位数为0，那么校验码不是（10-0=10），而是0）实现方法ean13（）计算验证码，输入12位条码，返回带验证码的条码。
                例如：输入：692223361219输出：6922233612192
            */

            alert(ean13(692223361219)); //6922233612192

            function ean13(num){
                //1、将其中每一位数都取下来
                var arr = [];
                while(num){
                    arr.unshift(num % 10);
                    num = parseInt(num / 10);
                }
                // alert(arr); //6,9,0,1,2,3,4,5,6,7,8,9
                var odd = 0;
                var even = 0;
                for(var i = 0; i < arr.length; i++){
                    if(i % 2 == 0){
                        //奇数位
                        odd += arr[i];
                    }else{
                        //偶数位
                        even += arr[i];
                    }
                }

                var sum = (odd + even * 3) % 10;
                if(sum){
                    sum = 10 - sum;
                }

                //生成第13位数
                arr.push(sum);
                return Number(arr.join(""));

            }
        </script>
    </head>
    <body>
        
    </body>
</html>